package com.example.certificate.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.certificate.dto.PerfectInfoDto;
import com.example.certificate.dto.RegisterDto;
import com.example.certificate.dto.common.UserBasePageDto;
import com.example.certificate.entity.OrgUser;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.certificate.execption.BusinessException;
import com.example.certificate.vo.UserInfoVo;

/**
 * <p>
 * 系统用户 服务类
 * </p>
 */
public interface OrgUserService extends IService<OrgUser> {

    /**
     * 新增用户信息
     * @param dto
     */
    void perfectUserData(PerfectInfoDto dto) throws BusinessException;

    /**
     * @Description  写入用户数据信息
     * @Param [dto]
     * @return void
     **/
    void insertOrgUser(RegisterDto dto);

    /**
     * @Description  分页多条件查询用户信息
     * @Param [dto]
     * @return java.util.List<com.han.internation.domain.entity.OrgUser>
     **/
    Page<OrgUser> selBasePage(UserBasePageDto dto);

    /**
     * @Description  后台管理员用户查询
     * @Param [dto]
     * @return com.baomidou.mybatisplus.extension.plugins.pagination.Page<com.example.certificate.entity.OrgUser>
     **/
    Page<OrgUser> selectManagement(UserBasePageDto dto);

    /**
     * @Description  修改用户数据信息
     * @Param [dto]
     * @return java.lang.Boolean
     **/
    Boolean updateOrgUser(OrgUser dto);
    
    /**
     * @Description  根据id查询用户基本信息
     * @Param [userId]
     * @return com.example.certificate.entity.OrgUser
     **/
    UserInfoVo getUserBase(String userId);
}
